import { UserEntity } from '@/api/create/interface'
import { PlanEntity } from './TvwallPlan/interface'
export type CashSourceEntity = {
	/**电视墙模式。1：定制画面，2：批量轮询 */
	mode: number
	/**是否展示终端名称*/
	show_mt_name: number
	/**电视墙风格id*/
	style_id: string
	/**电视墙成员*/
	members: Array<Partial<TvWallMemberItemEntity>>
	/**批量轮询*/
	batch_poll: {
		/**id*/
		id: string
		mode: number
		/** 预案名称 */
		name: string
		/** 轮询间隔时间(秒) */
		keep_time: number
		/** 轮询次数，0无限次轮询 */
		num: number
		/** 轮询成员列表 */
		members: UserEntity[]
		/** 当前轮询到的超元 */
		cur_poll_mt?: UserEntity
		/**轮询到的终端的位置*/
		poll_index?: number
		/**轮询状态0 空闲 1轮询中 2暂停*/
		state?: 0 | 1 | 2
	} | null
}

/**创会或者模板接口返回的电视墙信息 */
export type MeetingOrTemplateInterfaceTwallInfo = {
	/**不一定存在 */
	id?: string
	/**预案名称*/
	name: string
	tvwalls: Array<{
		/**电视墙模式。1：定制画面，2：批量轮询 */
		mode: number
		/**是否展示终端名称*/
		show_mt_name: number
		/**电视墙风格id*/
		style_id: string
		/**电视墙成员*/
		members?: Array<TvWallMemberItemEntity>
		/**批量轮询*/
		batch_poll?: {
			/**id*/
			id: string
			mode: number
			/** 预案名称 */
			name: string
			/** 轮询间隔时间(秒) */
			keep_time: number
			/** 轮询次数，0无限次轮询 */
			num: number
			/** 轮询成员列表 */
			members: UserEntity[]
			/** 当前轮询到的超元 */
			cur_poll_mt?: UserEntity
			/**轮询到的终端的位置*/
			poll_index?: number
			/**轮询状态0 空闲 1轮询中 2暂停*/
			state?: 0 | 1 | 2
		}
	}>
}
/**风格的具体信息*/
export type StyleInfoEntity = {
	/**电视墙模式。1：定制画面，2：批量轮询 */
	mode: number
	/**是否展示终端名称*/
	show_mt_name: number
	/**电视墙风格id*/
	style_id: string
	/**电视墙成员*/
	members?: Array<TvWallMemberItemEntity>
	/**批量轮询*/
	batch_poll?: {
		/**id*/
		id: string
		mode: number
		/** 预案名称 */
		name: string
		/** 轮询间隔时间(秒) */
		keep_time: number
		/** 轮询次数，0无限次轮询 */
		num: number
		/** 轮询成员列表 */
		members: UserEntity[]
		/** 当前轮询到的超元 */
		cur_poll_mt?: UserEntity
		/**轮询到的终端的位置*/
		poll_index?: number
		/**轮询状态0 空闲 1轮询中 2暂停*/
		state?: 0 | 1 | 2
	}
}
export type PollEntity = {
	id: string
	mode: number
	name: string
	keep_time: number
	num: number
	members: UserEntity[]
	cur_poll_mt?: UserEntity
	poll_index?: number
	state?: 0 | 1 | 2
}
/**盒子对应的通道也就是hdu_id位置信息*/
export interface boxPositionsEntity {
	/**hdu别名 */
	hdu_alias: string
	/**设备id号_通道索引号 */
	hdu_id: string
	/**方格高度 */
	box_height: number
	/** 方格横坐标*/
	box_x: number
	/**方格宽度*/
	box_width: number
	/**方格纵坐标*/
	box_y: number
	/**父容器宽度*/
	parent_box_width: number
	online?: 0 | 1
	silence?: 0 | 1
	used?: number
	volume?: number
}
/**包含风格信息(位置 名称 风格id)*/
export interface BoxInfoEntity {
	/**电视墙风格id */
	id: string
	/**电视墙风格名称*/
	name: string
	/**位置信息 */
	positions: Array<boxPositionsEntity>
}
/**四分屏成员*/
export type SpiltEntity = Partial<UserEntity> & {
	/**四分屏索引 */
	sub_chn_index: number
}
export type VmpMemberEntity = UserEntity & { chn_idx: number; member_type: number }
/**画面合成成员*/
export interface VmpEntity {
	/** 画面合成模式
	 * 1-定制画面合成;
	 * 2-自动画面合成;
	 */
	name?: string
	mode: number
	layout: number
	/** 显示别名 */
	show_mt_name: 0 | 1
	/** 画面合成成员信息 */
	members: Array<VmpMemberEntity>
}
export type TvWallMemberItemEntity = {
	account: string
	account_type: number // 1-moid;4-非系统邮箱;5-e164号;6-电话;7-ip地址;8-别名@ip(监控前端);
	name: string /**名称；仅作展示使用，下参无效，最大字符长度：128个字节 */
	conf_e164: string
	channel_index: number // 通道索引0或1
	/**设备id号_通道索引号 */
	hdu_id: string
	/**别名 */
	hdu_alias: string
	/**hdu风格*/
	hdu_style: number
	/** 通道是否被当前会议占用，仅用于会控返回 0-否;1-是;*/
	is_mine: number
	/**通道是否使用，仅用于会控返回 0-否;1-是;*/
	is_used: number
	/**终端通道 id */
	mt_chn_id: number
	/** 跟随类型 1-会控指定；2-发言人跟随；3-管理方跟随；4-会议轮询跟随；5-单通道轮询 6-选看画面合成；7-批量轮询(仅返回数据时使用); 8-自主多画面;9-四分屏;10-内容共享跟随;*/
	member_type: number
	spilt?: Array<SpiltEntity>
	poll?: PollEntity | null
	vmp?: VmpEntity
}

export type PlanDetailEntity = PlanEntity & {
	tvwalls: {
		/**1是定制  2批量轮询 */
		mode: number
		/**显示终端名称 */
		show_mt_name: number
		/**风格id */
		style_id: string
		/**对应的是定制的信息*/
		members: {
			/** 0代表此电视墙通道不可用 跟随类型 1-会控指定；2-发言人跟随；3-管理方跟随；4-会议轮询跟随；5-单通道轮询 6-选看画面合成；7-批量轮询(仅返回数据时使用); 8-自主多画面;9-四分屏;10-内容共享跟随;*/
			member_type: number
			/**设备id号_通道索引号 */
			hdu_id: string
		}
	}
}
export type StyleInfoDetail = {
	creator: ''
	layout_x: number
	layout_y: number
	name: string
	style_id: string
	details: Array<boxPositionsEntity>
}
export const deafultData = {}
